In the design of a logic circuit, a designer may utilize discrete components, such as resistors and transistors, standard small-scale integration (SSI) or medium-scale integration (MSI) devices, such as logic gates, registers, and counters, or large-scale integration (LSI) devices, such as customized gate arrays or microprocessors. In addition, instead of the foregoing types of parts for a logic circuit, the logic designer may utilize field programmable logic devices.
Obviously, the more discrete components that a designer utilizes in his circuit, the more flexibility in design that he may accomplish. However, by using SSI/MSI devices or dedicated LSI devices, the designer may accomplish many more functions in a smaller area on a given board and with much faster operating times than possible with a pure mixture of discrete components. However, for a given logic circuit, the chance that an off-the-shelf SSI/MSI device or dedicated large-scale integration device will meet a designer's need efficiently is small. While custom gate arrays may be manufactured to meet the designer's needs efficiently, these are prohibitively expensive. Thus the designer typically must utilize a combination of discrete components, SSI devices, MSI devices and dedicated LSI devices in a given logic circuit.
One way in which to further minimize the number of devices used in a given logic circuit is to utilize a field programmable logic device. The programmable logic device provides flexibility in design through its programmability, while minimizing the need to utilize a large number of devices and reducing the amount of board space used in creating the logic circuit.
Due to limitations in flexibility of existing programmable logic devices, very complicated circuits may require more than one programmable logic device, or require a programmable logic device associated with other SSI, MSI or LSI devices for complete implementation. The larger the number of discrete integrated circuit devices utilized in a given logic circuit, the slower the device and the larger the amount of board space taken up by the circuit. Furthermore, a larger number of devices is more expensive to implement. A more flexible programmable device would serve to reduce the expense and board space required for a given logic circuit.
One way in which to increase the flexibility of a programmable logic device is to increase the size of the programmable logic array on the device. However, by increasing the size of the logic array, the speed of operation of the device suffers. Thus a very large logic array may be unacceptable in some applications.
Accordingly, there is a need for a customizable integrated circuit having increased flexibility and speed for use by a logic designer involved in creating complicated logic circuits.